﻿$j(function() {
    $j("input[type='text'],textarea,input[type='password']").livequery('blur', function() {
        var img_id = $j(this).attr("id") + "_token";
        if (0 != $j('#' + img_id).size()) {
            var img_class = $j('#' + img_id).attr('class');
            if (img_class != 'undefined') {
                if (-1 != img_class.toString().indexOf('autocomplete')) {
                    $j('#' + img_id).removeClass('autocomplete_focus');
                }
                else if (-1 != img_class.toString().indexOf('datepicker')) {
                    $j('#' + img_id).removeClass('datepicker_focus');
                }
                else if (-1 != img_class.toString().indexOf('combobox')) {
                    $j('#' + img_id).removeClass('combobox_focus');
                }
                else if (-1 != img_class.toString().indexOf('search')) {
                    $j('#' + img_id).removeClass('search_focus');
                }
                else if (-1 != img_class.toString().indexOf('dot')) {
                    $j('#' + img_id).removeClass('dot_focus');
                }

            }
        }
    });
    $j("input[type='text'],textarea,input[type='password']").livequery('focus', function() {
        var img_id = $j(this).attr("id") + "_token";
        if (0 != $j('#' + img_id).size()) {
            var img_class = $j('#' + img_id).attr('class');
            if (img_class != 'undefined') {
                if (-1 != img_class.toString().indexOf('autocomplete')) {
                    $j('#' + img_id).addClass('autocomplete_focus');
                }
                else if (-1 != img_class.toString().indexOf('datepicker')) {
                    $j('#' + img_id).addClass('datepicker_focus');
                }
                else if (-1 != img_class.toString().indexOf('combobox')) {
                    $j('#' + img_id).addClass('combobox_focus');
                }
                else if (-1 != img_class.toString().indexOf('search')) {
                    $j('#' + img_id).addClass('search_focus');
                }
                else if (-1 != img_class.toString().indexOf('dot')) {
                    $j('#' + img_id).addClass('dot_focus');
                }
            }
        }
    });
    $j('.field_diaplay').livequery('change', function() {
        var _dis_id = $j(this).attr('id');
        var _val_id = _dis_id + "_value";
        var _dis_val = $j(this).val();
        var val_obj = document.getElementById(_val_id);
        if ((_dis_val == '' || _dis_val == null) && val_obj) {
            val_obj.value = '';
            if (val_obj.onchange != null)
                val_obj.onchange.call();
        }
    });

    $j('.field_token_datepicker').tokenMouseEvent('datepicker');
    $j('.field_token_autocomplete').tokenMouseEvent('autocomplete');
    $j('.field_token_combobox').tokenMouseEvent('combobox');
    $j('.field_token_search').tokenMouseEvent('search');
    $j('.field_token_dot').tokenMouseEvent('dot');

})
$j.fn.extend({
    tokenMouseEvent: function(token) {
        var cla = $j.trim($j(this).attr('class')) + ' ' + token;

        $j(this).live('mouseover', function() {
            var token_id = $j(this).attr('id');
            var input_display_id = '#' + token_id.replace('_token', '');
            $j(input_display_id).blur();
            $j(this).attr('class', cla + '_over');
        });
        $j(this).live('mouseout', function() { $j(this).attr('class', cla); });
        $j(this).live('mousedown', function() {
            $j(this).attr('class', cla + '_down');
            if (-1 != cla.indexOf('field_token_combobox')) {
                var token_id = $j(this).attr('id');
                var id = '#' + token_id.replace('_token', '');
                
                var settings = $(id).data('settings');

                if ($j(id).data('data') == undefined) {
                    $j(id).focus();
                    if (typeof (settings) == 'object') {
                        $Page.Invoke(settings.ajaxMethodName,
                     { url: settings.url, ReturnType: settings.returnType || 4, Success: su },
                     settings.parameters);
                    }
                    else {
                        $j.post(settings, function(js) {
                            var data = eval(js);
                            $j(id).data("data", data);
                            $j(id).autocomplete($(id).data('data'), $(id).data('autoSettings'));
                        });
                    }
                }
            }
        });
        $j(this).live('mouseup', function() {
            if (-1 != cla.indexOf('field_token_combobox')) {
                var token_id = $j(this).attr('id');
                var input_display_id = '#' + token_id.replace('_token', '');
                var input_display_value = $j(input_display_id).val();
                $j(input_display_id).val('');
                $j(input_display_id).focus().click().click();
                $j(input_display_id).val(input_display_value);
                //$j(input_display_id + '_package').unblock();
            }
            $j(this).attr('class', cla + '_up');
        });
    }

});
